package com.ruoyi.system.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * TB 订单表
 *
 * @TableName xs_order
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class XsOrderDto {

    private Long id;

    /**
     * 淘宝订单id
     */
    @Excel(name = "内部订单编号")
    private String orderId;

    /**
     * 写手id
     */
    @Excel(name = "写手id")
    private Integer writerId;

    /**
     * 写手昵称
     */
    @Excel(name = "写手")
    private String writerNickName;

    /**
     * 写手真实姓名
     */
    @Excel(name = "写手实名")
    private String writerName;

    /**
     * Acookie订单唯一ID
     */
    @Excel(name = "订单编号")
    private String acookieId;

    /**
     * 买家OpenUid
     */
    @Excel(name = "买家ID")
    private String buyerOpenUid;

    /**
     * 客服id
     */
    @Excel(name = "客服编号")
    private String serviceCode;
    private String serviceName;

    /**
     * 交易编号 (父订单的交易编号)
     */
    @Excel(name = "交易编号 (父订单的交易编号)")
    private Integer tid;

    /**
     * 交易状态
     */
    @Excel(name = "结款状态")
    private String status;

    /**
     * 商品标题
     */
    @Excel(name = "类型")
    private String title;

    /**
     * TB实付金额。精确到2位小数;单位:元。如:200.07，表示:200元7分
     */
    @Excel(name = "放单价")
    private BigDecimal payment;

    /**
     * 付款时间。
     */
    @Excel(name = "接单日期")
    private String payTime;

    /**
     * 结款时间
     */
    private String settlementStaTime;
    private String settlementEndTime;

    /**
     * 付款时间
     */
    private String payStaTime;
    private String payEndTime;
    /**
     * 跟进时间
     */
    private String followStaTime;
    private String followEndTime;

    /**
     * 绩效月份
     */
    private String perfStaTime;
    private String perfEndTime;

    /**
     * 创建时间
     */
    private String staTime;
    private String endTime;


    /**
     * 交易修改时间(用户对订单的任何修改都会更新此字段)。
     */
    @Excel(name = "交易修改时间")
    private String modified;

    /**
     * 实收价
     */
    @Excel(name = "实收价")
    private BigDecimal actualPayment;

    /**
     * 放单价
     */
    @Excel(name = "放单价")
    private BigDecimal putPayment;

    /**
     * 卖家备注内容
     */
    @Excel(name = "备注")
    private String sellerMemo;

    /**
     * 账户
     */
    @Excel(name = "支付宝")
    private String account;

    /**
     * 是否报账（1报，2未报）
     */
    @Excel(name = "报账")
    private String checkSheet;

    /**
     * 结款日期
     */
    private String settlementDate;

    /**
     * 结款备注
     */
    @Excel(name = "结款日期")
    private String settlementRemark;

    /**
     * 绩效月份
     */
    @Excel(name = "绩效月份")
    private String performance;

    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 修改日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 修改人
     */
    private String updateBy;

    /**
     * 订单来源(1淘宝、2天猫、3微信、4抖音、5拼多多、6对公、7线下、8内部、9其他渠道)
     */
    private Long orderSource;

    /**
     * 是否刷单（1是，2否）
     */
    private Long ifBrushing;

    private String storeCode;

    /**
     * 客服垫付金额
     */
    private String writerPaidPrice;

    /**
     * 写手已收金额
     */
    private BigDecimal advanceamount;


    /**
     * 是否刷单（1是，2否）
     */
    private String ifBalance;

    private String ifAudit;


    private String settle;

    /**
     * 选中订单
     */
    private String orderIdStr;

    private List<String> orderIdList;


    /**
     * 线下退款图片
     */
    private String paymentScreenshot;

    /**
     * 线下退款金额
     */
    private BigDecimal offlineRefundAmount;


    //客服垫付图片
    private String paymentImg;


    /**
     * 写手已结图片
     */
    private String writerImg;

    //客服垫付金额审核 0 未审核 1审核
    private Long serviceAudit;
    //写手已结金额审核 0 未审核 1审核
    private  Long writerAudit;
    //线下退款金额审核 0 未审核 1审核
    private Long offlineAudit;
}
